<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta content="en" name="language">
	<title>GraphicsMagick ChangeLog - 2020</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
	<link media="screen" href="docutils-articles.css" type="text/css" rel="stylesheet">

</head>

<body>

<div class="banner">
<img src="images/gm-107x76.png" alt="GraphicMagick logo" width="107" height="76" />
<span class="title">GraphicsMagick</span>
<form action="http://www.google.com/search">
  <input type="hidden" name="domains" value="www.graphicsmagick.org" />
  <input type="hidden" name="sitesearch" value="www.graphicsmagick.org" />
<span class="nowrap"><input type="text" name="q" size="25" maxlength="255" />&nbsp;<input type="submit" name="sa" value="Search" /></span>
</form>
</div>


<div class="navmenu">
<ul>
  <li><a href="index.html">Home</a></li>
  <li><a href="project.html">Project</a></li>
  <li><a href="download.html">Download</a></li>
  <li><a href="README.html">Install</a></li>
  <li><a href="Hg.html">Source</a></li>
  <li><a href="NEWS.html">News</a> </li>
  <li><a href="utilities.html">Utilities</a></li>
  <li><a href="programming.html">Programming</a></li>
  <li><a href="reference.html">Reference</a></li>
</ul>
</div>

<main id="graphicsmagick-changelog-2020">
<h1 class="title">GraphicsMagick ChangeLog - 2020</h1>
<p>2020-12-30  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>utilities/tests/convert-cmds.txt: A list of convert commands to
exercise.</p></li>
<li><p>utilities/tests/convert.tap: TAP script to exercise convert
commands.</p></li>
<li><p>coders/identity.c (ReadIdentityImage): Don't lose exception info
if an image is not returned.</p></li>
<li><p>tests/rwfile_sized.tap: Add tests for CMYK, RGB, and RGBA raw
interlaced files.</p></li>
<li><p>tests/rwblob.c (main): Add a -interlace option.</p></li>
<li><p>tests/rwfile.c (main): Add a -interlace option.</p></li>
<li><p>coders/cmyk.c (ReadCMYKImage): Fix broken reading of planar
CYMYK/CMYKA files.  Regression added in the 1.3.27 release.</p></li>
<li><p>coders/rgb.c (ReadRGBImage): Fix broken reading of planar RGB
files.  This regression was added while adding security fixes
starting in the 1.3.27 release. Fixes SourceForge issue #637
&quot;Import of raw RGB image data fails since 1.3.27.</p></li>
<li><p>coders/dpx.c: Add casts to avoid warnings when compiling under
MinGW.</p></li>
<li><p>coders/meta.c (super_fgets_w): Assure that returned pointer
value is the same as reported via 'b'.  Use size_t for sizes
rather than int.
(super_fgets): Assure that returned pointer
value is the same as reported via 'b'.  Use size_t for sizes
rather than int.</p></li>
<li><p>coders/miff.c (ReadMIFFImage): 'i' should be unsigned.
(WriteMIFFImage): 'i' should be unsigned.</p></li>
</ul>
</blockquote>
<p>2020-12-29  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/mpc.c (ReadMPCImage): 'i' should be unsigned.</p></li>
<li><p>magick/random.c (InitializeMagickRandomKernel): 'done' is not
used in all compilation implementations.</p></li>
<li><p>magick/nt_feature.c (CropImageToHBITMAP): Dependent on HasWINGDI32.
(ImageToHBITMAP): Dependent on HasWINGDI32.</p></li>
<li><p>coders/jp2.c: JasPer changed its jas_stream_ops_t callback
interfaces in releases 2.0.19 and 2.0.20.  Provide the newer
interfaces by default, but use a MAGICK_JP2_OLD_STREAM_INTERFACE
pre-processor definition to support selecting the old interfaces.
This mostly eliminates compilation warnings since the interfaces
are mostly binary compatible (within the positive range of an
integer).  In the 1.3.36 a MAGICK_JP2_NEW_STREAM_INTERFACE
definition was supported. It is assumed that Jasper libraries
should soon be updated to the latest version due to severe
security defects in older releases.</p></li>
<li><p>configure.ac: The gdi32 test was faulty since both gdi32 and
user32 libraries are required.</p></li>
</ul>
</blockquote>
<p>2020-12-26  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>version.sh: Updates in preparation for the 1.3.36 release.</p></li>
<li><p>bootstrap: Fix config.guess and config.sub download URLs.</p></li>
</ul>
</blockquote>
<p>2020-12-25  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>design/pixel-cache.dot: Fix reported syntax errors.</p></li>
<li><p>coders/mpc.c (ReadMPCImage): Report correct exception reason.</p></li>
<li><p>coders/miff.c (ReadMIFFImage): Arbitrarily limit the number of
header keywords to avoid DOS attempts.
(ReadMIFFImage): Finish updates to use resource-limited memory
allocator.
(WriteMIFFImage): Finish updates to use resource-limited memory
allocator.</p></li>
<li><p>coders/mpc.c (ReadMPCImage): Arbitrarily limit the number of
header keywords to avoid DOS attempts.  Fixes oss-fuzz 28956
&quot;Timeout - coder_MPC_fuzzer&quot;.</p></li>
</ul>
</blockquote>
<p>2020-12-24  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/render.c (AffineEdge): Use MagickDoubleToLong();</p></li>
<li><p>magick/utility.c (MagickDoubleToLong): New private function to
convert a 'double' to a 'long' with the minimum amount of harm.</p></li>
<li><p>magick/segment.c (Classify): Remove variables from function
global scope that don't need outer scope.</p></li>
<li><p>coders/jp2.c: JasPer changed its jas_stream_ops_t callback
interfaces in releases 2.0.19 and 2.0.20.  Revert to providing the
older interfaces by default, but use a
MAGICK_JP2_NEW_STREAM_INTERFACE pre-processor definition to
support selecting the new interfaces.  We don't know how to
usefully tell the JasPer version at compile time!  Luckily, using
the older interfaces only causes a compiler warning rather than a
run-time issue.</p></li>
<li><p>coders/mac.c (ReadMACImage): Use size_t type for 'ldblk' to
avoid possible overflow.</p></li>
</ul>
</blockquote>
<p>2020-12-23  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>NEWS.txt: Update the news to the date December 23, 2020.</p></li>
</ul>
</blockquote>
<p>2020-12-22  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/image.c (AllocateImage): Satisfy conditions for
DestroyImage() as soon as possible and use it for clean-up on
error.  Added more error checks.
(CloneImage): Satisfy conditions for DestroyImage() as soon as
possible and use it for clean-up on error.  Don't attempt to copy
colormap if colors is zero.  Added more error checks.
(DestroyImage): Assure that we can destroy a partially-constructed
Image.</p></li>
<li><p>magick/effect.c (BlurImage): Fix null pointer dereference if
image failed to be created.
(DespeckleImage): Fix null pointer dereference if image failed to
be created.
(EnhanceImage): Fix null pointer dereference if image failed to be
created.
(GaussianBlurImage): Fix null pointer dereference if image failed
to be created.
(MedianFilterImage): Fix null pointer dereference if image failed
to be created.
(MotionBlurImage): Fix null pointer dereference if image failed to
be created.
(ReduceNoiseImage): Fix null pointer dereference if image failed to
be created.
(ShadeImage): Fix null pointer dereference if image failed to be
created.
(SharpenImage): Fix null pointer dereference if image failed to be
created.
(SpreadImage): Fix null pointer dereference if image failed to be
created.</p></li>
</ul>
</blockquote>
<p>2020-12-21  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/jp2.c (BlobWrite): Update Jasper stream OPs callback
function signatures to exactly match latest jas_stream_ops_t
definition.  This avoids an annoying warning when using Jasper
2.0.23 but now causes annoying warnings when using 2.0.12 or
1.900.1. There does not appear to be a useful way to determine the
Jasper numeric version (only a C string is available) from its
header files.</p></li>
<li><p>magick/decorate.c (FrameImage): Skip attempting to render top or
bottom of ornamental border if its height is zero.</p></li>
<li><p>magick/image.c (CloneImage): Set image signature right away in
case it needs to be destroyed while it is being constructed.</p></li>
<li><p>wand/drawtest.c (main): MagickGetFilename() allocates a new
string so make sure to free it.</p></li>
<li><p>tests/constitute.c (main): Destroy ExceptionInfo to avoid memory
leak if an exception was thrown.</p></li>
<li><p>magick/effect.c (EdgeImage): Fix null pointer dereference if
edge image failed to be created.</p></li>
<li><p>magick/compress.c (HuffmanEncode2Image): Fix error handling
issues.</p></li>
<li><p>magick/command.c (CompareImageCommand): Fix memory leaks when an
input image failed to be read.
(CompositeImageCommand): Fix memory leaks when an input image
failed to be read.</p></li>
<li><p>coders/fax.c (WriteFAXImage): Fix error handling.</p></li>
<li><p>coders/mpc.c (ReadMPCImage): Use correct deallocator for page
geometry.  Fixes oss-fuzz 28853 &quot;Heap-buffer-overflow READ {*} -
_MagickReallocateResourceLimitedMemory&quot;.</p></li>
</ul>
</blockquote>
<p>2020-12-20  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/yuv.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/xwd.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/xpm.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/xcf.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/xbm.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/wpg.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/viff.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/vicar.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/uil.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/txt.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/topol.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/tim.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/tiff.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/tga.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/sun.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/sgi.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/sfw.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/rle.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/rla.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/rgb.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/psd.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/ps3.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/ps2.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/pnm.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/pdf.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/pdb.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/pcl.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/pcd.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/palm.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/mtv.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/mpc.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/meta.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/map.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/jpeg.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/jp2.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/jnx.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/icon.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/hrz.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/histogram.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/gray.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/fpx.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/emf.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/dpx.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/dps.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/dcm.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/cut.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/cmyk.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/cineon.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/avs.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/art.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/pcx.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/mac.c: Use resource-limited memory allocator.</p></li>
<li><p>coders/pict.c: Use resource-limited memory allocator.</p></li>
<li><p>magick/memory.c (_MagickReallocateResourceLimitedMemory): Add a
'clear' parameter which indicates that freshly allocated memory
should be zeroed.  Added &quot;Cleared&quot; versions of the private managed
memory macros and updated all managed memory macros to exclusively
use this function.</p></li>
</ul>
</blockquote>
<p>2020-12-19  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>Update Automake to 1.16.3 and bootstrap to pick up latest
config.guess and config.sub.</p></li>
</ul>
</blockquote>
<p>2020-12-17  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/miff.c (ImportRLEPixels): Change from C assertion to
exception report.  Fixes oss-fuzz 28703 &quot;ASSERT · ((quantum_type
== IndexQuantum) &amp;&amp; (image-&gt;storage_class ...&quot;.
(ReadMIFFImage): Read Gray DirectClass image as PseudoClass so it
has a colormap, and we have a RLE decode implementation for it.</p></li>
</ul>
</blockquote>
<p>2020-12-15  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/paint.c (OpaqueImage): Changing the image storage class
is not required.</p></li>
</ul>
</blockquote>
<p>2020-12-14  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/paint.c (OpaqueImage): Assure that image type is promoted
as required based on fill color.  Fixes unexpected results
discovered by Stuart McDonagh and reported via the
graphicsmagick-help mailing list on December 14, 2020.</p></li>
</ul>
</blockquote>
<p>2020-12-13  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/render.c (DrawImage): Set '[MVG]' image attribute at
appropriate places outside of DrawImage() since DrawImage()
sometimes recurses into itself, trashing the image attribute.  One
example of recursion is in the text annotation code.</p></li>
<li><p>coders/svg.c (ReadSVGImage): Properly support 'ping' mode so
'identify' works as expected.</p></li>
<li><p>magick/render.c (InsertAttributeIntoInputStream): Provide a more
useful diagnostic for when a &quot;use&quot; or &quot;class&quot; argument id is not
defined.</p></li>
</ul>
</blockquote>
<p>2020-12-12  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/render.c (DrawImage): Fix regression when parsing &quot;mask&quot;
which was added by changeset 16305:f33a0fb3d8e4 on July 15, 2020
since the last formal release.  This impacts MVG and SVG.</p></li>
</ul>
</blockquote>
<p>2020-12-08  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>www/INSTALL-unix.rst: Document the '--disable-compressed-files'
configure option, which was added on July 15th.</p></li>
</ul>
</blockquote>
<p>2020-12-06  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/magic.c: Don't send files which test positive for PCL to
the HPGL delegate, which is normally 'hp2xx'.  Fixes SourceForge
bug 607 &quot;Slow to convert HP PCL printer data&quot;.</p></li>
</ul>
</blockquote>
<p>2020-12-05  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/render.c (DrawImage): Use unique image attribute space
for MVG symbols.  Fixes oss-fuzz 28111 &quot;Timeout -
coder_MVG_fuzzer&quot;, oss-fuzz 28170 &quot;Stack-overflow - DrawImage&quot;,
and oss-fuzz 28292 &quot;Integer-overflow - DrawPolygonPrimitive&quot;.</p></li>
</ul>
</blockquote>
<p>2020-12-04  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/render.c (DrawImage): Verify that affine scaling factors
are not zero.  Fixes oss-fuzz 28293 &quot;Divide-by-zero -
InverseAffineMatrix&quot;.
(DrawPolygonPrimitive): Thread error status check was at wrong
scope, resulting in code executing when it should have quit.</p></li>
</ul>
</blockquote>
<p>2020-12-03  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/magick_types.h.in: Stop trying to define PTRDIFF_MAX.</p></li>
</ul>
</blockquote>
<p>2020-11-29  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/magick_types.h.in: Provide PTRDIFF_MAX for Visual Studio
if it is missing.</p></li>
<li><p>fuzzing/oss-fuzz-build.sh: Disable old JPEG support in libtiff.</p></li>
<li><p>coders/mat.c (ReadMATImage): Use resource-limited memory
allocator.
(WriteMATLABImage): Use resource-limited memory allocator.</p></li>
</ul>
</blockquote>
<p>2020-11-28  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>NEWS.txt: Update the news to the date November 28, 2020.</p></li>
<li><p>coders/png.c (ReadOneJNGImage): Verify and enforce
Alpha_compression_method values.  Request that color and alpha
decoders return just one frame.  Force decoder format to disable
auto-detection.  Assume that coder messed up and might have
returned more than one frame.  Fixes oss-fuzz 28013 &quot;Indirect-leak
. MagickMalloc&quot;.</p></li>
<li><p>magick/memory-private.h (MagickReallocateResourceLimitedMemory):
Fix typo in macro definition which resulted in a memory
reallocation leak!</p></li>
<li><p>Magick++/lib/Magick++/Drawable.h: Decided to continue using
std::unary_function if C++ version is less than C++'17 since
otherwise it may be changing an interface.</p></li>
</ul>
</blockquote>
<p>2020-11-27  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/gif.c (ReadGIFImage): Use resource-limited memory
allocator when reading the comment extension.</p></li>
<li><p>Magick++/lib/Magick++/Drawable.h: Remove inheritance from
std::unary_function, which was removed in C++'17.</p></li>
<li><p>coders/webp.c (ReadWEBPImage): Use resource-limited memory
allocator.
(WriteWEBPImage): Use resource-limited memory allocator.</p></li>
<li><p>coders/jbig.c (WriteJBIGImage): Use resource-limited memory
allocator.</p></li>
<li><p>coders/fits.c (ReadFITSImage): Use resource-limited memory
allocator.
(WriteFITSImage): Use resource-limited memory allocator.</p></li>
<li><p>coders/dib.c (ReadDIBImage): Use resource-limited memory
allocator.
(WriteDIBImage): Use resource-limited memory allocator.</p></li>
<li><p>coders/bmp.c (ReadBMPImage): Use resource-limited memory
allocator.
(WriteBMPImage): Use resource-limited memory allocator.</p></li>
</ul>
</blockquote>
<p>2020-11-26  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/tiff.c (ReadTIFFImage): Improve RGBATiledMethod progress
monitor so it reports more steps.
(ReadTIFFImage): Improve TiledMethod progress monitor so it
reports more steps.</p></li>
<li><p>fuzzing/utils.cc (class MagickState): Enable tracing of
exception events in order to help discover the origin of errors.
If too much output comes out, then this will be removed.</p></li>
<li><p>magick/render.c (ConvertPathToPolygon): Attempt to fix leak of
'points' on memory allocation failure.</p></li>
</ul>
</blockquote>
<p>2020-11-25  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/render.c (ConvertPathToPolygon): Make sure not to leak
points from added Edge.  Fixes oss-fuzz 27608 &quot;Direct-leak in
_MagickReallocateResourceLimitedMemory&quot;.
(DrawDashPolygon): Place an aribrary limit on stroke dash polygon
unit maximum length in order to avoid possibly rendering
&quot;forever&quot;.  Addresses oss-fuzz 24236 &quot;Timeout in
coder_MVG_fuzzer&quot;.</p></li>
</ul>
</blockquote>
<p>2020-11-23  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/render.c (DrawPolygonPrimitive): Try to minimize the
impact of too many threads due to replicated data until such time
as the data structures can be re-designed to directly support
threading.</p></li>
</ul>
</blockquote>
<p>2020-11-21  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>www/Hg.rst: Describe how to clone the repository from
SourceForge using the ssh protocol rather than https.</p></li>
<li><p>coders/ps.c (WritePSImage): Fix problem when writing PseudoClass
image with a colormap larger than two entries as bilevel.
Previous implementation was assuming that the colormap would only
include two entries for a monochrome image, but many entries may
exist in the colormap which were never used.  Fixes SourceForge
issue #635 &quot;gm convert failure from .pgm to .eps&quot;.</p></li>
</ul>
</blockquote>
<p>2020-11-20  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>fuzzing/utils.cc (class MagickState): Set DiskResource limit to
zero so that pixel cache won't spill over to using temporary
files.</p></li>
</ul>
</blockquote>
<p>2020-11-16  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>NEWS.txt: Update the news to the date November 16, 2020.</p></li>
</ul>
</blockquote>
<p>2020-11-15  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/svg.c (ReadSVGImage): Fix memory leak due to CDATA block,
and some other possible small leaks.</p></li>
<li><p>magick/magick.c (InitializeMagickEx): Set C pre-processor
definition USE_GLIBC_MTRACE to 1 in order to enable Linux mtrace
support.</p></li>
<li><p>magick/render.c (ConvertPathToPolygon): Fix memory leak upon
memory reallocation failure.  Addresses oss-fuzz 27351
&quot;Direct-leak in _MagickReallocateResourceLimitedMemory&quot;.</p></li>
<li><p>magick/memory.c (_MagickReallocateResourceLimitedMemory): Return
pointer to the allocation similar to realloc() and do not
automatically free existing memory upon allocation failure.</p></li>
</ul>
</blockquote>
<p>2020-11-08  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>common.shi.in: Apply some resource limits while running the test
suite.
(Q8_MEMORY_LIMIT): Set the test suite memory limit to 128MB for
Q8, or 256MB for Q16, or 512MB for the Q32 build.
(MAGICK_LIMIT_DISK): Set the test suite disk space limit to 0 to
avoid spilling over into disk files when the memory limit runs
out.</p></li>
<li><p>coders/miff.c (WriteMIFFImage): Update to use resource-limit
respecting memory allocators.</p></li>
</ul>
</blockquote>
<p>2020-11-07  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/miff.c (ReadMIFFImage): Update to use resource-limit
respecting memory allocators.</p></li>
<li><p>magick/render.c (DrawImage): Update to use resource-limit
respecting memory allocators.</p></li>
<li><p>magick/memory.c (_MagickReallocateResourceLimitedMemory): Add
new private interfaces for allocating private memory while
respecting resource limits.</p></li>
</ul>
</blockquote>
<p>2020-10-25  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;bobsdell">bfriesen<span>&#64;</span>bobsdell</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/render.c (DrawImage): Reject pattern image with a
dimension of zero.  Fixes oss-fuzz issue 26382
&quot;graphicsmagick:coder_MVG_fuzzer: Floating-point-exception in
DrawPrimitive&quot;.</p></li>
</ul>
</blockquote>
<p>2020-10-15  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/constitute.c (ConstituteImage): Set image depth
appropriately based on the storage size specified by StorageType
and QuantumDepth.</p></li>
</ul>
</blockquote>
<p>2020-10-11  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/render.c (DrawPrimitive): Use DestroyImageList() to
destroy composite_image since it may be a list.  Fixes oss-fuzz
25247 &quot;Indirect-leak in MagickMalloc&quot;.
(DrawPrimitive): Add ImageInfo properties to request only
returning the first frame if the in-line image is a list.  Also,
add a missing DestroyImageList() request if multiple-frames were
returned.</p></li>
<li><p>magick/transform.c (TransformImage): Use ReplaceImageInList()
replace transformed image in list.</p></li>
<li><p>magick/list.c (ReplaceImageInList): Remove previous and next
references from removed image before destroying it.</p></li>
<li><p>magick/render.c (DrawClipPath): Remove break statement so that
added clip-mask image is initialized properly and rendered-on as
expected.  Thanks to László Böszörményi for reporting this problem
prior to release.</p></li>
</ul>
</blockquote>
<p>2020-10-03  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>configure.ac (AC_PROG_CC_STDC): AC_PROG_CC_STDC is no longer
required since AC_PROG_CC now provides its useful function.
AC_PROG_CC_STDC is marked as obsolete after Autoconf 2.69.
Quote all arguments to m4 macros.</p></li>
</ul>
</blockquote>
<p>2020-09-28  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>configure.ac: Update syntax to avoid using deprecated syntax
according to Autoconf 2.69.</p></li>
</ul>
</blockquote>
<p>2020-09-21  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/webp.c (ReadWEBPImage): Use SetImageProfile() rather than
AppendImageProfile().</p></li>
</ul>
</blockquote>
<p>2020-09-20  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>wand/magick_wand.c (MagickSetSamplingFactors): Correct
formatting of sampling factors string.  Fixes SourceForge issue
633 &quot;MagickSetSamplingFactors() API mismatch - comma separated
values instead of 1x1 &quot;.</p></li>
</ul>
</blockquote>
<p>2020-09-14  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/render.c (DrawPrimitive): Improve error checking related
to ImagePrimitive.</p></li>
<li><p>magick/resize.c (ResizeImage): If CloneImage() of resize_image
to source_image fails then free source_image allocation before
returning in order to prevent memory leak.</p></li>
<li><p>magick/image.c (CloneImage): Free clone_image allocation if
ImgExtra allocation fails in order to prevent memory leak.  Fixes
oss-fuzz 25342 &quot;Indirect-leak in MagickMalloc&quot;.
(SetImageOpacity): SetImageOpacity() now returns error status
since it is possible for it to fail.</p></li>
</ul>
</blockquote>
<p>2020-09-13  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/tiff.c (ReadTIFFImage): Ignore corrupt whitepoint and
primary chromaticities tags.  Fixes oss-fuzz issue 25507
&quot;Divide-by-zero in DoubleToRational&quot;.  The divide by zero is
actually in libtiff, but the bad values from the input file were
propagated through GraphicsMagick.</p></li>
</ul>
</blockquote>
<p>2020-09-09  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/analyze.c (GetImageBoundingBox): Use solution proposed by
Troy Patteson to solve SourceForge issue 345 &quot;MagickTrimImage with
extreme fuzz can produce image with negative width&quot;.</p></li>
</ul>
</blockquote>
<p>2020-08-16  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/tiff.c (ReadTIFFImage): Apply the same resource limits to
TIFF tile sizes as apply to the image itself.  Fixes oss-fuzz
issues 24523 &quot;Timeout in coder_TIFF_fuzzer&quot; and 24810 &quot;Timeout in
coder_PTIF_fuzzer&quot;.</p></li>
</ul>
</blockquote>
<p>2020-08-13  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>configure.ac: Add --without-gdi32 configure option to support
disabling use of the Microsoft Windows gdi32 library if it is not
wanted.</p></li>
</ul>
</blockquote>
<p>2020-08-12  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>configure.ac: Remove the assumption that a native Windows build
means that Ghostscript may be available so that MinGW tests which
depend on Ghostcript are attributed proper XFAIL status by the
test suite.</p></li>
</ul>
</blockquote>
<p>2020-08-10  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/magick.c (MagickCondSignal): Explicitly initialize 'oact'
prior to calling sigaction() in order to attempt to surmount
apparent oss-fuzz framework issue.</p></li>
</ul>
</blockquote>
<p>2020-08-09  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/delegate.c, magick/magick.c, magick/nt_base.c: Fix
compilation errors under MinGW when Ghostscript support is
disabled.</p></li>
</ul>
</blockquote>
<p>2020-08-08  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/nt_base.c: Fix compilation issue noticed under MinGW.</p></li>
<li><p>magick/render.c (DrawImage): Handle the case that
ExtractTokensBetweenPushPop() can return NULL.  Fixes oss-fuzz
24659 &quot;Null-dereference READ in DrawImage&quot;.</p></li>
<li><p>magick/magick.c (MagickCondSignal): Re-implement to handle the
case where a new-style 'siginfo' signal handler was previously
registered, as well as the legacy type.  This may address oss-fuzz
24690 &quot;Use-of-uninitialized-value in MagickCondSignal&quot;.</p></li>
</ul>
</blockquote>
<p>2020-07-26  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>wand/drawtest.c: Use structured error handling and report all
output to stderr so it does not screw up TAP tests.</p></li>
<li><p>magick/render.c (DTOLONG_MIN): Correct 32-bit definition of
DTOLONG_MIN.</p></li>
<li><p>wand/wandtests.tap: Wand drawtest requires FreeType.</p></li>
<li><p>NEWS.txt: Update with changes up to 2020-07-26.</p></li>
<li><p>VisualMagick/magick/magick_config.h.in (HasGS): Default HasGS to
enabled.</p></li>
<li><p>configure.ac: Add a --without-gs configure option to disable
reading PS, EPS, and PDF formats via an external Ghostscript
delegate program.  This is intended as an absolute security
measure for sites that want to be assured to avoid executing
Ghostscript even though it is installed on the system.  Removal of
PS and PDF reading support breaks reading other formats which are
handled by executing an external program to first convert to PS or
PDF formats.</p></li>
<li><p>magick/delegate.c (InvokePostscriptDelegate): Use HasGS to
enable use of the Ghostscript delegate.  Change the existing
legacy HasGS ifdefs to HasGSLIB.</p></li>
</ul>
</blockquote>
<p>2020-07-23  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/tiff.c (WriteTIFFImage): Fix compilation error when
COMPRESSION_WEBP is not defined.</p></li>
</ul>
</blockquote>
<p>2020-07-20  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>configure.ac: Fix enableval syntax for
--disable-compressed-files.</p></li>
</ul>
</blockquote>
<p>2020-07-19  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/command.c (CompareImageCommand): Merge changeset by
谢致邦 (XIE Zhibang) which adds 'matte' support to the compare
command. However, substantially reduce the amount of changes
by avoiding adding a new public function.  Documentation
regarding how 'compare' uses this option is also added.</p></li>
<li><p>magick/command.c: Merge changeset by谢致邦 (XIE Zhibang)
regarding Some duplicate &quot;verbose&quot; should be &quot;version&quot;.</p></li>
<li><p>configure.ac, magick/blob.c: Merge changeset by Przemysław
Sobala regarding &quot;Configure: add --with(out)-compressed-files
option&quot;.  The configure option was changed to
--disable-compressed-files during the merge since it is more
appropriate.</p></li>
</ul>
</blockquote>
<p>2020-07-15  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>NEWS.txt: Update with changes up to 2020-07-15.</p></li>
<li><p>magick/render.c (DrawImage): Improve error handling so errors
are returned when they should be.  Fixes oss-fuzz 24117
&quot;Stack-overflow in DrawImage&quot; and oss-fuzz 24126 &quot;Timeout in
coder_MVG_fuzzer&quot;.  Restore the original behavior of
DrawClipPath() when there is no matching clip-path attribute.</p></li>
</ul>
</blockquote>
<p>2020-07-12  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>NEWS.txt: Update with changes up to 2020-07-12.</p></li>
</ul>
</blockquote>
<p>2020-07-11  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/xwindow.c (MagickXVisualColormapSize): Fix UBSAN integer
overflow warning.</p></li>
<li><p>magick/render.c (DrawClipPath): Report only a warning if there
is no clip mask.
(ExtractTokensBetweenPushPop): Verify that the expected/required
pop statement is indeed found.  Fixes oss-fuzz 23498 &quot;Timeout in
coder_MVG_fuzzer&quot;.</p></li>
</ul>
</blockquote>
<p>2020-06-14  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/constitute.c (ReadImage): Improve error handling related
to ImageToFile().</p></li>
<li><p>magick/image.c (SetImageInfo): Improve error handling related to
ImageToFile().</p></li>
<li><p>coders/mat.c: Check MagickFindRawImageMinMax() return status.</p></li>
<li><p>magick/constitute.c (MagickFindRawImageMinMax): Verify that the
original seek position was restored.</p></li>
</ul>
</blockquote>
<p>2020-06-13  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/render.c (DrawImage): Apply stricter range limits when
converting a double to a long in order to avoid integer overflow.
Fixes oss-fuzz 23304 &quot;Integer-overflow in DrawImage&quot;.
(DrawClipPath): If there is no matching clip-path attribute then
return an informative error.  Fixes oss-fuzz 23187 &quot;Stack-overflow
in DrawImage&quot; which is actually a case of DrawImage() /
DrawClipPath() recursion.</p></li>
</ul>
</blockquote>
<p>2020-06-06  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/wpg.c (UnpackWPGRaster): Fix oss-fuzz 23042
&quot;Heap-buffer-overflow in ImportGrayQuantumType&quot; and oss-fuzz
&quot;Heap-buffer-overflow in InsertRow&quot; which are both from the same
cause.</p></li>
</ul>
</blockquote>
<p>2020-06-01  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/pixel_cache.c (ClipCacheNexus): Change x and y variables
to unsigned type.</p></li>
</ul>
</blockquote>
<p>2020-05-31  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/tiff.c (WriteTIFFImage): WebP compression only supports a
depth of 8.  Fixes oss-fuzz 22560 &quot;Use-of-uninitialized-value in
GammaToLinear&quot;.</p></li>
</ul>
</blockquote>
<p>2020-05-30  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/wpg.c (ReadWPGImage): Terminate reading when a pixel
cache resource limit is hit rather than moving on to heap buffer
overflow.  Fixes oss-fuzz 20045, 20318, 21956</p></li>
<li><p>coders/png.c (ReadMNGImage): If the image width is 1, then X
magnification is done by by simple pixel replication.  If the
image height is 1, then Y magnification is done by simple pixel
replication.  Fixes oss-fuzz issue 19025 &quot;Heap-buffer-overflow in
ReadMNGImage&quot; and oss-fuzz issue 19026 &quot;ASSERT: yy &lt; (long)
large_image-&gt;rows&quot;. It appears that CERT has assigned
CVE-2020-12672 for oss-fuzz issue 19025.  Note that the heap
overwrite is only one byte.</p></li>
</ul>
</blockquote>
<p>2020-05-01  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>NEWS.txt: Update with changes up to 2020-04-23.</p></li>
</ul>
</blockquote>
<p>2020-04-23  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/dpx.c (ReadDPXImage): Support dpx:swap-samples-read
define which behaves similar to dpx:swap-samples, but is only
applied when reading.  This provides for use when there is both
reading and writing in the same operation.
(WriteDPXImage): Support dpx:swap-samples-write define which
behaves similar to dpx:swap-samples, but is only applied when
writing.  This provides for use when there is both reading and
writing in the same operation.</p></li>
</ul>
</blockquote>
<p>2020-04-18  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick: Fix remaining GCC 10 warnings.</p></li>
</ul>
</blockquote>
<p>2020-04-17  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/transform.c (GetImageMosaicDimensions): Mark function as pure.</p></li>
<li><p>magick/effect.c (GetNonpeakMedianList): Mark function as pure.</p></li>
<li><p>coders/fits.c (InsertRowHDU): Fix scary-sounding GCC 10 warning,
which is actually benign.</p></li>
<li><p>config/config.sub: Update to latest config.sub</p></li>
<li><p>config/config.guess: Update to latest config.guess.</p></li>
<li><p>Makefile.am: Update to Automake 1.16.2</p></li>
</ul>
</blockquote>
<p>2020-04-04  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/dpx.c (ReadRowSamples): Simplify 10-bit packed decoding.
(WriteRowSamples): Simplify 10-bit packed encoding.</p></li>
<li><p>coders/locale.c (ReadConfigureFile): Ignore comment element if
it was not found or is too short.</p></li>
<li><p>magick/pixel_cache.c (ReadCacheIndexes): If SetNexus() has
previously failed to allocate the staging buffer and thus reported
an exception to the user, then ReadCacheIndexes() should report an
error rather than blundering into copying indexes data to a null
pointer.</p></li>
<li><p>magick/effect.c (AdaptiveThresholdImage): Assure that we don't
attempt to write to output pixels if they have not been selected
yet.</p></li>
<li><p>magick/utility.c (ExpandFilenames): Properly handle NULL
filelist and NULL filelist entries.
(GetGeometry): Assure that there is no one-character stack read
overflow when reading the geometry buffer.</p></li>
</ul>
</blockquote>
<p>2020-03-29  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>fuzzing/oss-fuzz-build.sh: Restore xz to oss-fuzz build due to
build problems getting worked out.</p></li>
</ul>
</blockquote>
<p>2020-03-28  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>fuzzing/oss-fuzz-build.sh (MAGICK_LIBS): Remove mention of
liblzma.a in the oss-fuzz build until its build problems get
worked out.</p></li>
</ul>
</blockquote>
<p>2020-03-27  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>fuzzing/oss-fuzz-build.sh: Skip building xz in the oss-fuzz
build until its build problems get worked out.</p></li>
</ul>
</blockquote>
<p>2020-03-25  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/log.c (InitializeLogInfoPost): Don't load log.mgk if
logging is already configured to use MethodOutput.</p></li>
</ul>
</blockquote>
<p>2020-03-24  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/log.c (InitializeLogInfoPost): Mark that logging is
configured, regardless of if &quot;log.mgk&quot; was discovered.</p></li>
</ul>
</blockquote>
<p>2020-03-23  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>VisualMagick/magick/magick_config.h.in: ProvideDllMain is now
disabled by default since it causes InitializeMagick() to be
invoked prior to when the program's main() routine is called,
thereby blocking configuration activities or use of
InitializeMagickEx().  With this change it is even more imperative
that InitializeMagick() be explicitly invoked by all programs
using GraphicsMagick.</p></li>
<li><p>magick/log.c (LogMagickEventList): Always use/respect the
configured log format as might be obtained from &quot;log.mgk&quot; or
SetLogDefaultFormat().</p></li>
<li><p>magick/utility.c (MagickFormatString): Return the size of the
formatted string.
(MagickFormatStringList): Return the size of the formatted string.
(FormatString): Return the size of the formatted string.
(FormatStringList): Return the size of the formatted string.</p></li>
</ul>
</blockquote>
<p>2020-03-22  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>www/api/types.rst: Improved types documentation and added more
hyperlinks.</p></li>
<li><p>scripts/format_c_api_doc.py: Add hyperlinks for 'LogMethod' and
'LogOutputType' type documentation.</p></li>
<li><p>Magick++/lib/Image.cpp (SetLogDefaultEventType): New C++ function to
forward to C interface.
(SetLogDefaultGenerations): New C++ function to forward to C
interface.
(SetLogDefaultLimit): New C++ function to forward to C interface.
(SetLogDefaultFormat(): New C++ function to forward to C
interface.
(SetLogDefaultLogMethod): New C++ function to forward to C
interface.
(SetLogDefaultFileName): New C++ function to forward to C
interface.
(SetLogDefaultOutputType): New C++ function to forward to C
interface.</p></li>
<li><p>magick/log.c (SetLogDefaultEventType): New function to support
setting the default set of events which will result in a log
event.
(SetLogDefaultGenerations): New function to specify the maximum
number of log files maintain before circulating back to overwrite
the first name.
(SetLogDefaultLimit): New function to specify the maximum number
of logging events which may occur before creating a new log file.
(SetLogDefaultLogMethod): New function to provide a call-back
function to be invoked for each log event when the logging method
type is MethodOutput.
(SetLogDefaultOutputType): New function to set the logging output
destination.
(SetLogDefaultFormat): New function to provide the format of the
logging output.
(SetLogDefaultFileName): New function to provide the file name,
or file path, to be written to for each log event.
(InitializeLogInfo): If a default logging callback was provided
via SetLogDefaultLogMethod() then skip searching for &quot;log.mgk&quot;.
In this case it is assumed that the API user has already changed
any other logging default which would have been updated by
&quot;log.mgk&quot; so it would be harmful to search for it, or read from
it.</p></li>
</ul>
</blockquote>
<p>2020-03-10  Troy Patteson  &lt;<a class="reference external" href="mailto:troyp&#37;&#52;&#48;ieee&#46;org">troyp<span>&#64;</span>ieee<span>&#46;</span>org</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/png.c (WriteOnePNGImage): Don't skip optional Exif
identifier code if it isn't present.</p></li>
</ul>
</blockquote>
<p>2020-03-08  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/pixel_cache.c (ModifyCache): Destroy clone_image.cache if
ClonePixelCache() reports failure.  Fixes oss-fuzz 20871
&quot;graphicsmagick:coder_MVG_fuzzer: Direct-leak in
MagickMallocAligned&quot;.</p></li>
<li><p>magick/log.c (LogMagickEventList): Prepare source module base
name more efficiently.  Move MethodOutput implementation to the
front so it is not filtered by other active blocks.
(LogMagickEventList): Cache broken-down time structure in LogInfo
and recompute only when needed.</p></li>
</ul>
</blockquote>
<p>2020-03-07  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/resize.c (HorizontalFilter): Improve tracing.
(VerticalFilter): Improve tracing.
(ResizeImage): Improve tracing.</p></li>
<li><p>www/api/api.rst: Add functions from log.c and render.c.</p></li>
<li><p>magick/log.c (DestroyLogInfo): DestroyLogInfo is no longer
marked MagickExport.</p></li>
</ul>
</blockquote>
<p>2020-03-04  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/api.h: Add &quot;magick/enum_strings.h&quot; to API headers.
Requested by Przemysław Sobala via posting to the
graphicsmagick-help mailing list on 2020-02-27.</p></li>
<li><p>scripts/html_fragments.py: Automatically generate HTML footer
content and include commented HTML fragment which may be
substituted with SF tracker for SourceForge web site.</p></li>
</ul>
</blockquote>
<p>2020-02-23  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>version.sh: Updates in preparation for the 1.3.35 release.</p></li>
<li><p>www/INSTALL-windows.rst: Update Windows installation and build
documentation.</p></li>
</ul>
</blockquote>
<p>2020-02-22  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>NEWS.txt: Update with News since previous release.</p></li>
<li><p>magick/magick.c (InitializeMagickSignalHandlers): This private
implementation function is now a static function as it should have
been.
(InitializeMagickEx): New function which may be used in place of
InitializeMagick() to initialize GraphicsMagick.  This
initialization function returns an error status value, may update
a passed ExceptionInfo structure with error information, and
provides an options parameter which supports simple bit-flags to
tailor initialization.  The signal handler registrations are
skipped if the MAGICK_OPT_NO_SIGNAL_HANDER flag is set in the
options.</p></li>
</ul>
</blockquote>
<p>2020-02-19  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/magick.c (MagickToMime): Add a MIME translation for
&quot;jpg&quot;.  Issue reported by Pro Turm.</p></li>
</ul>
</blockquote>
<p>2020-02-18  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>www/INSTALL-windows.rst: Add quoting to avoid losing backslashes
in Windows paths.</p></li>
</ul>
</blockquote>
<p>2020-02-16  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/common.h: Add missing unsupported handling for some
recently added GCC/Clang attributes.</p></li>
<li><p>magick/: Move all remaining private implementation code in
public headers which is guarded by MAGICK_IMPLEMENTATION into
private headers, which are never installed.</p></li>
</ul>
</blockquote>
<p>2020-02-15  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/tiff.c (WriteTIFFImage): Evidence suggests that large
strip sizes improve performance by reducing the number of I/Os.
The defaults suggested by libtiff are way to small for today's
images and computers.  Default TIFF strip sizes so that each
uncompressed strip consumes up to 1MiB of memory, or 4MiB for FAX
oriented codecs, or based on LZMA compression level when using
LZMA compression.  The default size may be adjusted via the
TIFF_BYTES_PER_STRIP preprocessor definition.</p></li>
</ul>
</blockquote>
<p>2020-02-09  Fojtik Jaroslav  &lt;<a class="reference external" href="mailto:JaFojtik&#37;&#52;&#48;seznam&#46;cz">JaFojtik<span>&#64;</span>seznam<span>&#46;</span>cz</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/wpg.c ZeroFillMissing data will never been triggered when
y&gt;=image-&gt;rows.</p></li>
</ul>
</blockquote>
<p>2020-02-09  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/render.c (DrawImage): Limit pattern dimensions by
LONG_MAX rather than ULONG_MAX since this seems more likely to
avoid arithmetic overflows later on.</p></li>
</ul>
</blockquote>
<p>2020-02-09  Fojtik Jaroslav  &lt;<a class="reference external" href="mailto:JaFojtik&#37;&#52;&#48;seznam&#46;cz">JaFojtik<span>&#64;</span>seznam<span>&#46;</span>cz</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/wpg.c Check for exception in image.</p></li>
</ul>
</blockquote>
<p>2020-02-09  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/command.c (VersionCommand): Add Google perftools tcmalloc
to the available feature support.</p></li>
<li><p>www/INSTALL-unix.rst: Include some information about building
with MSYS2.</p></li>
<li><p>coders/png.c (ReadOnePNGImage): Eliminate compilation warnings
about signed/unsigned comparisons.</p></li>
<li><p>magick/image.c: Remove private global string constants, and one
private global unsigned long constant, from the library ABI.
Since the global constants were declared via a private header and
only used within the GraphicsMagick build, removing these does not
impact the public ABI.  The globals removed are BackgroundColor,
BorderColor, DefaultTileFrame, DefaultTileGeometry,
DefaultTileLabel, ForegroundColor, HighlightColor, MatteColor,
PSDensityGeometry, PSPageGeometry, and DefaultCompressionQuality.</p></li>
</ul>
</blockquote>
<p>2020-02-08  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/render.c (DrawImage): Apply draconian pattern
specification offset and dimension validations.  Hopefully there
is no impact to usability.  If so please report it as a bug.
Fixes oss-fuzz 20586 &quot;graphicsmagick:coder_MVG_fuzzer:
Integer-overflow in DrawPolygonPrimitive&quot;.</p></li>
<li><p>coders/svg.c (ReadSVGImage): Fix dereference of NULL pointer
when stopping image timer.</p></li>
</ul>
</blockquote>
<p>2020-02-06  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/pict.c (DecodeImage): Allocate extra scanline memory to
allow small RLE overrun.  Fixes oss-fuzz 20271
&quot;graphicsmagick:coder_PICT_fuzzer: Heap-buffer-overflow in
ExpandBuffer&quot; and 20272 &quot;graphicsmagick:coder_PICT_fuzzer:
Heap-buffer-overflow in DecodeImage&quot;.</p></li>
<li><p>PerlMagick/t/wmf/read.t: Update WMF reference images.  Relax
test requirements for ski.wmf.</p></li>
<li><p>locale/C.mgk: Correct error message associated with
&quot;UnsupportedNumberOfRows&quot;.  Patch was submitted by Thorsten
Alteholz via private email on 2020-02-05.</p></li>
</ul>
</blockquote>
<p>2020-02-04  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/topol.c: Include magick/magick_endian.h.</p></li>
</ul>
</blockquote>
<p>2020-02-03  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick, coders, wand: Added copious casts to avoid possible
integer overflows in the Microsoft Windows 64-bit build, where
sizeof(long) &lt; sizeof(size_t).</p></li>
</ul>
</blockquote>
<p>2020-01-26  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/render.h (&quot;PrimitiveInfo&quot;): Change PrimitiveInfo
coordinates from type 'unsigned long' to 'size_t'.</p></li>
</ul>
</blockquote>
<p>2020-01-24  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/gradient.c (GradientImage): Warnings reduction, plus note
about incorrect diagonal gradients math.</p></li>
</ul>
</blockquote>
<p>2020-01-20  Fojtik Jaroslav  &lt;<a class="reference external" href="mailto:JaFojtik&#37;&#52;&#48;seznam&#46;cz">JaFojtik<span>&#64;</span>seznam<span>&#46;</span>cz</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>VisualMagickconfigureconfigure.cpp Option /arch:SSE2 is
available only for 32 bit build.</p></li>
</ul>
</blockquote>
<p>2020-01-19  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/pcd.c (DecodeImage): Assure that pcd_length gets
initialized with something.</p></li>
<li><p>Magick++/lib/Options.cpp (strokeDashArray): Add needless check
for _drawInfo-&gt;dash_pattern null in order to make static analysis
happy.</p></li>
<li><p>magick/render.c (DestroyPolygonInfo): Make sure to not
dereference a null edges pointer.</p></li>
<li><p>coders/pdb.c (WritePDBImage): Make sure that null comment value
is not dereferenced.</p></li>
<li><p>coders/vid.c (ReadVIDImage): Make sure that
ThrowVIDReaderException does not dereference a null pointer.</p></li>
<li><p>magick/quantize.c (ClassifyImageColors): Fix error handling so a
null pointer won't be consumed after a memory allocation failure.
Changed the location of some variable declarations and added some
comments.</p></li>
</ul>
</blockquote>
<p>2020-01-18  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/caption.c (ReadCAPTIONImage): Assure that metrics are
initialized.</p></li>
<li><p>magick/pixel_cache.c (DestroyThreadViewSet): Check if views
pointer is not null before destroying views.</p></li>
<li><p>coders/xpm.c (ReadXPMImage): Properly detect the case where the
XPM colormap is not fully initialized.</p></li>
<li><p>coders/pict.c (DecodeImage): Fix heap buffer over-reads. Fixes
oss-fuzz issue 20053 &quot;graphicsmagick:coder_PICT_fuzzer:
Heap-buffer-overflow in ExpandBuffer&quot; and oss-fuzz issue 20048
&quot;graphicsmagick:coder_PICT_fuzzer: Heap-buffer-overflow in
DecodeImage&quot;.  Both of these oss-fuzz issues appeared due to
recent changes since the last release.</p></li>
<li><p>coders/meta.c (WriteMETAImage): Assure that 'iptc_offset' is
initialized and valid.</p></li>
<li><p>coders/jpeg.c (ReadJPEGImage): Assure that evaluating the
embedded profile length does not suffer from undefined behavior.</p></li>
</ul>
</blockquote>
<p>2020-01-12  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/render.c (DrawImage): Add more MVG parser validations.</p></li>
</ul>
</blockquote>
<p>2020-01-11  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/histogram.c (WriteHISTOGRAMImage): Histogram coder was
relying on the previously removed '&#64;' file inclusion feature to
insert the histogram comment text.  Write a PseudoClass MIFF image
with RLE compression.  Fixes SourceForge issue #622 &quot;Histogram
produces incorrect color table attribute &quot;.</p></li>
<li><p>magick/pixel_cache.c (ModifyCache): Re-open the pixel cache if
the cache rows/columns do not match the owning image rows/columns.</p></li>
<li><p>magick/transform.c (TransformImage): TransformImage now returns
a MagickPassFail return status value rather than void.</p></li>
<li><p>coders/pict.c (ReadPICTImage): Fix some over-strict validations
which were preventing some PICT files which were previously read
successfully from being accepted. Fix problems which occurred when
the clipping rectangle changed the image size. Improve reading
embedded JPEG blobs.  Now successfully reads all raster PICT files
I have available.</p></li>
</ul>
</blockquote>
<p>2020-01-08  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/pict.c (ReadPICTImage): Be more strict about PICT
rectangle by treating rectangle dimensions as if they are a 16-bit
signed type and not allowing negative values.  Avoid GCC warnings
which sprung up similar to &quot;warning: comparison is always false
due to limited range of data type&quot;.</p></li>
</ul>
</blockquote>
<p>2020-01-05  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/sfw.c (ReadSFWImage): Restore a DestroyImage() statement
which was accidentally deleted by recent edits.  Fixes oss-fuzz
&quot;Issue 19819 in oss-fuzz: graphicsmagick:coder_SFW_fuzzer:
Indirect-leak in AllocateImage&quot;.</p></li>
<li><p>coders/png.c (WriteOneJNGImage): Detect when JPEG encoder has
failed, and throw exception.  Fix image dimension limit
validations.  Stop discarding exception report.  Fixes SourceForge
bug #621 &quot;Assertion in WriteBlob at magick/blob.c:4937&quot; which was
reported by Suhwan Song.</p></li>
<li><p>coders/pict.c (WritePICTImage): Eliminating small buffer overrun
when run-length encoding pixels.  Fixes SourceForge bug #620
&quot;heap-buffer-overflow in EncodeImage at coders/pict.c:1114&quot; which
was reported by Suhwan Song.</p></li>
<li><p>coders/logo.c (ReadLOGOImage): PATTERN error handling was
incomplete.  Add appropriate error handling.
(ReadLOGOImage): Switch to using ConstituteTextureImage() rather
than TextureImage() since it is more appropriate for this purpose.
(ReadLOGOImage): Oops!  Accidental change of behavior. When size
is not supplied, simply return the pattern image.</p></li>
</ul>
</blockquote>
<p>2020-01-04  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/*.c (ReadFOOImage): Stop image timer just before
returning from reader so that reported timings are correct when
used in the future.</p></li>
</ul>
</blockquote>
<p>2020-01-03  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>magick/timer.c (StartTimer): Expose previously existing
StartTimer() function.
(StopTimer): Expose previously existing StartTimer() function.</p></li>
<li><p>magick/constitute.c (WriteImage): Don't over-write time-stamp
when output is to INFO format.</p></li>
</ul>
</blockquote>
<p>2020-01-03  Fojtik Jaroslav  &lt;<a class="reference external" href="mailto:JaFojtik&#37;&#52;&#48;seznam&#46;cz">JaFojtik<span>&#64;</span>seznam<span>&#46;</span>cz</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>VisualMagickconfigureconfigure.exe: Should not depend on mfcr90.dll.
It is too bad when end user cannot run this tool because of missing DLL.</p></li>
<li><p>VisualMagickconfigureconfigure.cpp Make speed optimisation as default
option.</p></li>
<li><p>VisualMagickconfigureconfigure.vcproj Give different filename to debug
build to avoid accidental committing debug build to repository.</p></li>
</ul>
</blockquote>
<p>2020-01-01  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
<blockquote>
<ul class="simple">
<li><p>coders/dpx.c (GenerateDPXTimeStamp): Use reentrant localtime_r()
function if it is available.</p></li>
<li><p>magick/log.c (LogMagickEventList): Use reentrant
localtime_r() function if it is available.</p></li>
<li><p>coders/cineon.c (GenerateCineonTimeStamp): Use reentrant
localtime_r() function if it is available.</p></li>
<li><p>coders/mat.c (WriteMATLABImage): Use reentrant localtime_r()
function if it is available.</p></li>
<li><p>coders/pdf.c (WritePDFImage): Use reentrant localtime_r()
function if it is available.</p></li>
<li><p>coders/ps.c (WritePSImage): Use reentrant ctime_r() function
if it is available.</p></li>
<li><p>coders/ps2.c (WritePS2Image): Use reentrant ctime_r() function
if it is available.</p></li>
<li><p>coders/ps3.c (WritePS3Image): Use reentrant ctime_r() function
if it is available.</p></li>
<li><p>configure.ac: Test for getpwnam_r().</p></li>
<li><p>magick/utility.c (ExpandFilename): Use reentrant getpwnam_r()
function if it is available.</p></li>
<li><p>magick/magick.c (InitializeMagickSignalHandlers): Use the normal
termination signal handler for SIGXCPU and SIGXFSZ so that ulimit
or setrlimit(2) may be used to apply CPU (RLIMIT_CPU) and output
file size (RLIMIT_FSIZE) limits with the normal cleanup, and
without dumping core.  Note that any output files currently being
written may be truncated and files being written by external
programs (e.g. Ghostscript) might be left behind unless they are
to a temporary file assigned by GraphicsMagick.</p></li>
<li><p>coders/xpm.c (ReadXPMImage): Promote a color-lookup
warning to an error.</p></li>
<li><p>coders/xc.c (ReadXCImage): Promote a color-lookup
warning to an error.</p></li>
<li><p>coders/null.c (ReadNULLImage): Promote a color-lookup
warning to an error.</p></li>
<li><p>Makefile.am: Rotate ChangeLogs for the new year.</p></li>
<li><p>coders/gradient.c (ReadGRADIENTImage): Promote a color-lookup
warning to an error.</p></li>
</ul>
</blockquote>
</main>


<hr class="docutils">
<div class="document">
    <p><a href="Copyright.html">Copyright</a> © GraphicsMagick Group 2002-2025<!--SPONSOR_LOGO--></p>
</div>

</main>
</body>
</html>
